using System.Collections.Generic;

namespace MLSharp.Clustering
{
	/// <summary>
	/// A simple node representing a cluster in a cluster tree.
	/// </summary>
	public class ClusterNode : IClusterNode
	{
		#region Properties

		/// <summary>
		/// The instances that belong to the cluster node.
		/// </summary>
		public IList<Instance> Instances { get; private set; }

		/// <summary>
		/// The child nodes of the current node.
		/// </summary>
		public IList<IClusterNode> Children { get; private set; }

		/// <summary>
		/// The ID of the node.
		/// </summary>
		public int NodeId { get; set; }

		#endregion

		#region Public Constructors

		/// <summary>
		/// Creates an empty ClusterNode.
		/// </summary>
		public ClusterNode()
		{
			Instances = new List<Instance>();
			Children = new List<IClusterNode>();
		}

		#endregion
	}
}